package xyz.labmem.base.sys.util

class AESUtil {
    /***
     * 使用凯撒加密方式加密数据
     * @param orignal 原文
     * @param key 密钥
     * @return 加密后的字符
     */
    fun encryptKaisa(orignal: String, key: Int): String? {
        //将字符串转换为数组
        val chars = orignal.toCharArray()
        val buffer = StringBuffer()
        //遍历数组
        for (aChar in chars) {
            //获取字符的ASCII编码
            var asciiCode = aChar.code
            //偏移数据
            asciiCode += key
            //将偏移后的数据转为字符
            val result = asciiCode.toChar()
            //拼接数据
            buffer.append(result)
        }
        return buffer.toString()
    }

    /**
     * 使用凯撒加密方式解密数据
     *
     * @param encryptedData :密文
     * @param key           :密钥
     * @return : 源数据
     */
    fun decryptKaiser(encryptedData: String, key: Int): String? {
        // 将字符串转为字符数组
        val chars = encryptedData.toCharArray()
        val sb = StringBuilder()
        // 遍历数组
        for (aChar in chars) {
            // 获取字符的ASCII编码
            var asciiCode = aChar.code
            // 偏移数据
            asciiCode -= key
            // 将偏移后的数据转为字符
            val result = asciiCode.toChar()
            // 拼接数据
            sb.append(result)
        }
        return sb.toString()
    }
}